package com.demo.java.OD351_400.OD388;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【整数对最小和(C卷)】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/146242174
 */
public class OdMain {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        // 读取数组1的大小
        int N = scanner.nextInt();
        List<Integer> v1 = new ArrayList<>();
        for (int i = 0; i < N; i++) {
            int j = scanner.nextInt();
            v1.add(j);  // 添加元素到数组1
        }

        // 读取数组2的大小
        int M = scanner.nextInt();
        List<Integer> v2 = new ArrayList<>();
        for (int i = 0; i < M; i++) {
            int j = scanner.nextInt();
            v2.add(j);  // 添加元素到数组2
        }

        // 读取k，表示需要最小的k个和
        int target = scanner.nextInt();

        // 存储所有对之和
        List<Integer> res = new ArrayList<>();
        for (int x : v1) {
            for (int y : v2) {
                res.add(x + y);  // 计算所有对之和并添加到列表
            }
        }

        // 对所有对之和进行排序
        Collections.sort(res);

        // 计算最小的k个对之和的总和
        int result = 0;
        for (int i = 0; i < target; i++) {
            result += res.get(i);  // 累加最小的k个和
        }

        // 输出最终结果
        System.out.println(result);
    }
}